구름 Commit - 클린코드
클린 코드 다시보기
2023.11.22
클린코드 논란
- 클린 코드를 추구하면 주석 작성 X?
- 코드가 클린하면 리팩토링 필요가 없지않나?
- 테코가 없어도 되지않냐?
- 클코로는 일정을 지킬 수 없다?
- 클코 원칙에 위배되어 리뷰 불가하다?
단점
- 오버엔지니어링을 하려한다
- 레거시 코드 무시
- 주석 경멸
- 패턴 남용
- 엄격한 규칙 준수
- 짧은 함수와 클래스에 대한 지나친 강조
- 완벽주의
- SOLID 원칙 오용
클린코드 구성
- 원칙.패턴.연습
- 사례연구
- 휴리스틱 - 학습된 감각에 기반하여 판단
OOP를 바라보는 관점
명사 중심
- 데이터를 중심으로 함수 캡슐화
- OOAD와 자료구조로써의 객체 관점
- -er로 끝나는 이름 금기
동사 중심
- 객체를 컴퓨터로 보는 관점
- 메시징과 객체간 협력 강조
객체 중심
- 큰 객체/ 세부는 타 프로그래밍 스타일 사용
- 대부분 주요 OOP 언어
객체 보조
- 자료구조 또는 추상 자료형 관점 객체 활용
전통적인 데이터와 데이터 변환 분리 방식
- OOP의 한계 : 비지터 패턴
- OO의 데이터-행위 캡슐화 반대
- DOP 제안 - 자바 아키텍트 브라이언 게츠
- 단순한 일은 단순하게!
- DOP 제안 - 자바 아키텍트 브라이언 게츠
기회주의 리팩토링
- 시간 날때마다 틈마다 리팩토링해라..?